package com.ftg.learn.day10.exam;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Arrays;

/**
 * @author kangjx
 * @version 1.0
 * @date 2023/8/9 下午2:34
 */
public class Test {

    public static void main(String[] args) {

        Book book = new Book("三国演义",3);
        Book book1 = new Book("水浒传",3);
        Book book2 = new Book("西游记",3);


        User user = new User("张三");

        user.lendBook(book1);
        user.lendBook(book1);
        user.lendBook(book1);

        System.out.println(user);

        BorrowRecord r = new BorrowRecord();
        r.setUser(user);
        r.setBook(book1);
        //日期 LocalDate LocalDateTime Clock
        r.setLendTime(LocalDateTime.now().toString());


        user.returnBook(0);

        BorrowRecord r1 = new BorrowRecord();
        r1.setUser(user);
        r1.setBook(book1);
        //日期 LocalDate LocalDateTime Clock
        r1.setReturnTie(LocalDateTime.now().toString());

        System.out.println(user);

        //为一个类 里面的属性赋初始値  有几种常见方法
        //1 setter  getter
        //2 有参构造方法
        //3 直接 =

        //工作线程  用户线程  (工作内存)
        Thread t1 = new Thread(()->{
            System.out.println("ss");
        });

        t1.setName("线程名称");
        //设置成为守护线程
        t1.setDaemon(true);

//        用户线程： 用户线程也被称为工作线程。当线程的任务执行完毕或者以通知的方式结束。
//        守护线程： 一般是为工作线程服务。当所有的用户线程结束，守护线程自动结束。垃圾回收机制就是一种常见的守护线程。
//🐱 为什么需要守护线程？
//
// 默认情况下，当主线程main启动了一个子线程t时，当主线程结束，并不影响子线程t的执行。但是，在一些情况下，我们希望，当主线程或用户线程结束的时候，子线程t自动结束，这便有了守护线程。

        // 主  工作   守护 系统

        //2 :  工作内存 主内存  物理内存 16G  (逻辑内存3.67)

//        工作内存  主内存


        t1.start();
    }

}
